<?php

class CreerFilmAction extends Action{
	
	function execute( HttpRequest $request ){
			
		//on recupere les dao dont on a besoin		
		$DAOfactory=AbstractDAOFactory::getDaoFactory(AbstractDAOFactory::MYSQL);
		$filmDAO=$DAOfactory->getFilmDAO();
		$param=array('titre', 'datesortie', 'realisateur', 'urlphotopetite','urlphotogrande','genre','public','duree','synopsys');
	   //on verifie les donnees
	   $resultat=$this->isFieldsFilled($param,$request);
	
		if ($resultat==true){
			//on hydrate notre objet film avec les données transmises
			$film=new Film();
			$film->setTitre($request->getParameter('titre'));
			$film->setDateSortie($request->getParameter('datesortie'));
			$film->setRealisateur($request->getParameter('realisateur'));
			$film->setUrlPhoto($request->getParameter('urlphotopetite'));
			$film->setUrlPhotoGrande($request->getParameter('urlphotogrande'));
			$film->setGenre($request->getParameter('genre'));
			$film->setTypePublic($request->getParameter('public'));
			$film->setDuree($request->getParameter('duree'));
			$film->setSynopsys($request->getParameter('synopsys'));
			//on recherche si un film porte déja le meme nom et a la meme date de sortie
			if ($filmDAO->research($film)){
				//si c'est bon on insert en base et on redirige sur la gestion des films
				$filmDAO->insert($film);
				$listeFilms=$filmDAO->getAll();
				$request->addObject('listeFilms',$listeFilms);
				return self::ACTION_OK;
			 }
			 else{
			//si c'est pas bon on reste sur le formulaire et on envoie un message	
			$film=new Film();
			$request->addObject('film',$film);
			$request->addMessage('Un film portant le meme nom et sorti le meme jour existe deja dans la base');
			return self::ACTION_KO;
			}
			 
		}
		else{
			//les champs ne sont pas bien renseignés ->on envoie un message	
			$film=new Film();
			$request->addObject('film',$film);
			$request->addMessage('Tout les champ ne sont pas correctement saisis');
			return self::ACTION_KO;
		}
		

	   
		
	}
	
	function isFieldsFilled(Array $param,$request){
		//on fait une simple verif de la présence des données coté serveur au cas ou l'utilisateur aurait
		//désactivé le javscript l'essentiel des controles etant realise cote client
		$retour=true;
		foreach($param as $cle=>$valeur){
			if ($request->getParameter($valeur)==""){
				$retour=false;
			}
		}
		return $retour;
	}
		
	

	
}